package com.公司笔试草稿;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collections;

public class work04 {
}


class Solution04 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param tangCards int整型一维数组 小汤的出牌顺序及面值
     * @param wangCards int整型一维数组 小王的出牌顺序及面值
     * @return int整型
     */
    public int solution(int[] tangCards, int[] wangCards) {
        // write code here
        // 回溯
        // 田忌赛马
        // 计算小王最高可得分

        // 排序
        int[] a = wangCards.clone();
        int[] b = tangCards.clone();


        Arrays.sort(a);
        Arrays.sort(b);

        int i = 0, j = 0;
        int win=0, ping=0;
        int len1 = a.length -1;
        int len2 = b.length -1;

        while(i<=len1 && j<= len2){
            if(a[i] > b[j]){
                i++;
                j++;
                win++;
            }else if(a[i] < b[j]){
                i++;
                len2--;
//                sum --;
            }else{
                if(i !=len1){
                    if(a[len1] > b[len2]){
                        len1--;
                        len2--;
                        win++;
                    }else {
                        i++;
                        len2--;
//                        sum--;
                    }
                }else {
                    i++;
                    j++;
                    ping ++;
                }
            }
        }
        return win*3 + ping;
    }

//    // 冒泡排序
//    void sort(int[] nums){
//        int min = nums[0];
//        int minIndex = 0;
//        for(int i=1; i< nums.length; i++){
//            if(min > nums[i]){
//                swap(nums, minIndex, i);
//                minIndex = i;
//            }
//        }
//    }
//
//    void swap(int[] nums, int left, int right){
//        int tmp = nums[left];
//        nums[left] = nums[right];
//        nums[right] = tmp;
//    }

}